package shuju;

class Stack {
    private LinkedList list;

    public Stack() {
        list = new LinkedList();
    }

    // 入栈
    public void push(int value) {
        list.add(value);
    }

    // 出栈
    public int pop() {
        if (list.size() == 0) {
            throw new IllegalStateException("Stack is empty");
        }
        int size = list.size();
        int value = list.get(size - 1); // 获取栈顶元素
        list.remove(size - 1); // 删除栈顶元素
        return value;
    }

    // 获取栈顶元素
    public int peek() {
        if (list.size() == 0) {
            throw new IllegalStateException("Stack is empty");
        }
        return list.get(list.size() - 1);
    }

    // 栈是否为空
    public boolean isEmpty() {
        return list.size() == 0;
    }

    // 获取栈的大小
    public int size() {
        return list.size();
    }
}

